import Vuex from 'vuex'
import Vue from 'vue'
import * as http from '@/api/todos'
// import { ADD_COUNT } from './mutation-types'
Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    count: 100,
    todos: []
  },
  // 唯一一个用于修改state的数据，但是只能做同步处理
  mutations: {
    // 参数1 是state
    // 参数2 是组件传递过来的数据
    // [ADD_COUNT](state, { payload }) {
    //   // console.log(payload)
    //   state.count += payload
    // }

    ADD_COUNT(state, { payload }) {
      // console.log(payload)
      state.count += payload
    },
    GET_TODOS(state, res) {
      // console.log(2)
      state.todos = res
    }
  },
  // actions 可以用于异步处理，但是并不能直接修改state
  actions: {
    getTodos(content) {
      console.log(1)
      // 发送网络请求
      http.getTodos().then((res) => {
        content.commit('GET_TODOS', res)
        // console.log(content)
      })
    }
  },
  getters: {
    getCount(state) {
      return '$' + state.count
    }
  },
  modules: {}
})

export default store
